package ctx

import (
	"framework/httpz/response"
	"time"

	"github.com/kataras/iris/v12"
)

type ActionRequest struct {
	host   string // 请求主机
	domain string // 请求域名
	method string // 请求类型
	uri    string // 请求地址
	params any    // 请求参数
	body   any    // 请求body
}

func ProxyHandler(ctx iris.Context) {

	// step 解析请求接口基本信息(获取请求地址/参数/Method等)
	// hander = proxyRequestInit()

	// step 查询接口配置信息

	// step 启用检查器
	// 		登录信息检查
	// 		接口权限
	// 		接口参数检查

	// step 业务处理引擎
	//      检查是否有自定义处理
	//		数据写入
	//      数据更新
	//		数据查询
	//      数据删除
	//      数据导入
	//      数据导出
	//      API接口转发

	// method		请求方式
	// uri			请求地址
	// params		请求参数
	// body			请求单数

	request := iris.Map{
		"scheme":      ctx.Scheme(),
		"host":        ctx.Host(),
		"domain":      ctx.Domain(),
		"method":      ctx.Method(),
		"remote_addr": ctx.RemoteAddr(),
		"path":        ctx.Path(),
	}

	// 匹配请求地址
	response.Sucess(ctx, iris.Map{
		"unix_time": time.Now().Format(time.RFC3339),
		"request":   request,
	})
}

// func ProxyDemo(ctx iris.Context) {

// 	// method		请求方式
// 	// uri			请求地址
// 	// params		请求参数
// 	// body			请求单数

// 	// 设置请求接口数据
// 	s1 := ActionHandler{
// 		method: "any",
// 		uri:    "/demo/list",
// 	}

// 	fmt.Printf(">>> +%v\n", s1)
// 	request := iris.Map{
// 		"scheme":      ctx.Scheme(),
// 		"host":        ctx.Host(),
// 		"domain":      ctx.Domain(),
// 		"method":      ctx.Method(),
// 		"remote_addr": ctx.RemoteAddr(),
// 		"path":        ctx.Path(),
// 	}

// 	// 匹配请求地址

// 	ctx.StopWithJSON(200, iris.Map{
// 		"unix_time": time.Now().Format(time.RFC3339),
// 		"request":   request,
// 		"errno":     0,
// 		"message":   "ok",
// 	})
// }
